--Coluna METADATA está faltando na tabela BACK_OFFICE_REQUEST_TYPE.
\echo 'Adicionando coluna BACK_OFFICE_REQUEST_TYPE.METADATA'

CREATE OR REPLACE FUNCTION func_addColumn() RETURNS void AS $$
DECLARE
    VCOUNT  INTEGER := 0;
BEGIN
  SELECT count(*) into VCOUNT FROM pg_attribute WHERE attrelid='<SCHEMA>.back_office_request_type'::REGCLASS AND attname = 'metadata';
      IF VCOUNT = 0 THEN
          ALTER TABLE <SCHEMA>.BACK_OFFICE_REQUEST_TYPE ADD METADATA VARCHAR(255);

	  --Coluna METADATA na tabela BACK_OFFICE_REQUEST_TYPE não permitirá valores nulos, por isto inserimos um valor padrão
	  UPDATE <SCHEMA>.BACK_OFFICE_REQUEST_TYPE SET METADATA = 'filterPanelFactory' WHERE METADATA IS NULL;
      END IF;
      RETURN;
END;

$$ LANGUAGE plpgsql;
SELECT func_addColumn();
 DROP FUNCTION func_addColumn();

--Coluna METADATA na tabela BACK_OFFICE_REQUEST_TYPE não permite valores nulos.
ALTER TABLE <SCHEMA>.BACK_OFFICE_REQUEST_TYPE ALTER COLUMN METADATA SET NOT NULL;
--Coluna FORM_HANDLER não deveria estar na tabela BACK_OFFICE_REQUEST_TYPE.
\echo 'Excluindo Coluna FORM_HANDLER da TABELA BACK_OFFICE_REQUEST_TYPE'

CREATE OR REPLACE FUNCTION func_dropColumn() RETURNS void AS $$
DECLARE
    VCOUNT  INTEGER := 0;
BEGIN
  SELECT count(*) INTO VCOUNT FROM pg_attribute WHERE attrelid='<SCHEMA>.back_office_request_type'::REGCLASS AND attname = 'form_handler';

      IF VCOUNT = 1 THEN
          ALTER TABLE <SCHEMA>.BACK_OFFICE_REQUEST_TYPE DROP COLUMN FORM_HANDLER;

      END IF;
      RETURN;
END;

$$ LANGUAGE plpgsql;
SELECT func_dropColumn();
 DROP FUNCTION func_dropColumn();


--Comment não encontrado.
COMMENT ON COLUMN <SCHEMA>.BACK_OFFICE_REQUEST_TYPE.METADATA IS 'IDENTIFICADOR DO CONJUNTO DE METADADOS ATRELADO AO TIPO';
